package com.shxzz.easy12306.framework.starter.idempotent.core.handler;

import com.shxzz.easy12306.framework.starter.idempotent.annotation.Idempotent;
import org.aspectj.lang.ProceedingJoinPoint;

/**
 * 幂等执行处理器接口
 * @author shxzz
 * @create 2024-02-22-21:57
 */
public interface IdempotentExecuteHandler {
    /**
     * 执行幂等逻辑，方法执行前执行
     */
    void execute(ProceedingJoinPoint proceedingJoinPoint, Idempotent idempotent);

    /**
     * 方法执行后处理逻辑
      */
    default void postProcessing() {

    }

    /**
     * 方法执行异常处理逻辑
     */
    default void exceptionProcessing(){

    }
}
